package lambda;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/*- 不是任何匿名内部类都可以转换为Lambda表达式
- Lambda表达式对接口的要求：只能是函数式接口
- 函数式接口:接口中要求实现类必须重写的方法只有一个*/
public class LambdaDemo1 {
    public static void main(String[] args) {
        List<String>list =new ArrayList<>();
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();
            }
        });
        //Lambda表达式中的参数类型可以不写
        Collections.sort(list, ( o1,  o2)->{
            return o1.length()-o2.length();
            }
        );
        //Lambda表达式方法体中只有一句代码时，方法体的{}可以不写，如果这句话有return，也一定不写
        Collections.sort(list, ( o1,  o2)-> o1.length()-o2.length() ) ;

    }
}
